// 封装网络请求
// utils/request.js

// // 登录状态管理
const loginManager = {
 // 检查登录状态
   checkLogin() {
 				console.log(121111)
     const token = uni.getStorageSync('token')
     if (token) {
       // 未登录，跳转到登录页或直接登录
      uni.switchTab({
      	url:"/pages/index/index"
      })
     }else{
 				  this.wxLogin()
 			  }
   },
   // 微信登录
   wxLogin() {
	   console.log(22222)
     uni.login({
       provider: 'weixin',
       success: (loginRes) => {
         if (loginRes.code) {
           // 获取到临时登录凭证，发送到后端
           this.code2Session(loginRes.code)
         } else {
           console.error('登录失败！' + loginRes.errMsg)
           uni.showToast({
             title: '登录失败，请重试',
             icon: 'none'
           })
         }
       },
       fail: (err) => {
         console.error('uni.login失败:', err)
         uni.showModal({
           title: '提示',
           content: '无法获取微信登录权限，请检查设置',
           showCancel: false
         })
       }
     })
   },
   
   // 发送code到后端换取token
   code2Session(code) {
     request({
       url: 'login/info',
       method: 'get',
       data: { js_code:code }
     }).then(res => {
 				  console.log(res)
       if (res.status === 200 && res.data.openid) {
         // 登录成功，保存token
         uni.setStorageSync('openid', res.data.openid)
         uni.setStorageSync('userInfo', res.data)
 				  if(res.data.token){
 					  uni.setStorageSync('token', res.data.token)
 					  uni.setStorageSync('userInfo', res.data);
 					  uni.switchTab({
 					  	url:"/pages/index/index"
 					  })
					  uni.$emit('userLoginSuccess')
 				  }else{
 					  uni.redirectTo({
 					  	url:"/pages/login/login"
 					  })
 				  }
         // 触发登录成功事件，通知其他页面
         // uni.$emit('loginSuccess', res.data)
       } else {
         // console.error('登录接口错误:', res.msg)
         // uni.showToast({
         //   title: res.msg || '登录失败',
         //   icon: 'none'
         // })
       }
     }).catch(err => {
       console.error('登录请求失败:', err)
       uni.showToast({
         title: '网络请求失败，请重试',
         icon: 'none'
       })
     })
   },
   
   // 验证token有效性
   verifyToken(token) {
     request({
       url: '/api/auth/verify',
       method: 'POST',
       data: { token }
     }).then(res => {
       if (res.code !== 0) {
         // token无效，重新登录
         uni.removeStorageSync('token')
         this.wxLogin()
       }
     }).catch(() => {
       // 验证失败，重新登录
       uni.removeStorageSync('token')
       this.wxLogin()
     })
   }
 
}

export function request(options) {
  return new Promise((resolve, reject) => {
    uni.request({
		// https://apishop.aa.ka.dajunzhu.cn
      url: 'https://apishop.aa.ka.dajunzhu.cn/admin/'+options.url,
      // url: 'http://apishop.aa.ka.dajunzhu.cn/v1/'+options.url,
      method: options.method || 'GET',
      data: options.data || {},
      header: {
		  
        'content-type': options.contentType || 'application/x-www-form-urlencoded',
        'token': uni.getStorageSync('token') || ''
      },
      success: (res) => {
        if (res.statusCode === 200) {
          resolve(res.data)
		  if(res.data.status==403){
			  loginManager.wxLogin()
			  // uni.showToast({
			  // 	title:'未到登录时间'
			  // })
		  }
        } else {
          reject(res)
        }
      },
      fail: (err) => {
        reject(err)
      }
    })
  })
}    